package loteria.view;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;

import loteria.control.LoteriaControlador;
import loteria.util.TipoLoteria;

public class TelaPrincipal extends JPanel {

	private JButton btnGerarEstatistica;
	private JButton btnDezenasMaisSorteadas;
	private JButton btnTabelaDezenasRepetidas;
	private JTextArea textArea;
	private JScrollPane scrollPane;
	private JRadioButton rdbtnLotomania;
	private JRadioButton rdbtnLotofacil;
	private ButtonGroup rdGroupTipoLoteria;
	
	private int tipoLoteria;
	private int resultado;
	private int inicio;
	private int fim;
	private JTextField txtFim;
	private JTextField txtResultado;
	private JTextField txtInicio;
	private JButton btnLimpar;
	private JButton btnTabelaDezenasRepetidaLT;
	private JTextField txtPrevisao;
	
	public TelaPrincipal() {
		setLayout(null);
		
		btnGerarEstatistica = new JButton("Conferir Acertos");
		btnGerarEstatistica.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				if(rdbtnLotomania.isSelected()){
					tipoLoteria = TipoLoteria.LOTOMANIA;
				}else if(rdbtnLotofacil.isSelected()){
					tipoLoteria = TipoLoteria.LOTOFACIL;
				}else{
					return;
				}
				resultado = Integer.parseInt(txtResultado.getText());
				inicio = Integer.parseInt(txtInicio.getText());;
				fim = Integer.parseInt(txtFim.getText());;
				LoteriaControlador c = new LoteriaControlador();
				textArea.setText( textArea.getText() + c.printEstatistcaAcertos(tipoLoteria, resultado, inicio, fim) );
				
			}
		});
		btnGerarEstatistica.setBounds(463, 36, 195, 25);
		add(btnGerarEstatistica);
		
		textArea = new JTextArea();
		textArea.setFont(new Font("Consolas", Font.PLAIN, 12));
		scrollPane = new JScrollPane(textArea);
		scrollPane.setVerticalScrollBarPolicy ( ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS );
		scrollPane.setHorizontalScrollBarPolicy( ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS );
		scrollPane.setBounds(10,134,907,542);
		add(scrollPane);
		
		txtFim = new JTextField();
		txtFim.setBounds(323, 100, 86, 20);
		add(txtFim);
		txtFim.setColumns(10);
		
		txtResultado = new JTextField();
		txtResultado.setBounds(323, 38, 86, 20);
		add(txtResultado);
		txtResultado.setColumns(10);
		
		txtInicio = new JTextField();
		txtInicio.setBounds(323, 69, 86, 20);
		add(txtInicio);
		txtInicio.setColumns(10);
		
		JLabel lblResultado = new JLabel("Resultado concurso:");
		lblResultado.setBounds(190, 41, 123, 14);
		add(lblResultado);
		
		JLabel lblInicio = new JLabel("Inicio concurso:");
		lblInicio.setBounds(190, 72, 123, 14);
		add(lblInicio);
		
		JLabel lblFimConcurso = new JLabel("Fim concurso:");
		lblFimConcurso.setBounds(190, 100, 123, 14);
		add(lblFimConcurso);
		
		btnDezenasMaisSorteadas = new JButton("Dezenas mais Sorteadas");
		btnDezenasMaisSorteadas.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				if(rdbtnLotomania.isSelected()){
					tipoLoteria = TipoLoteria.LOTOMANIA;
				}else if(rdbtnLotofacil.isSelected()){
					tipoLoteria = TipoLoteria.LOTOFACIL;
				}else{
					return;
				}
				resultado = Integer.parseInt(txtResultado.getText());
				inicio = Integer.parseInt(txtInicio.getText());;
				fim = Integer.parseInt(txtFim.getText());;
				LoteriaControlador c = new LoteriaControlador();
				textArea.setText( textArea.getText() + c.printEstatisticaMaisSairam(tipoLoteria, resultado, inicio, fim) );
				
			}
		});
		btnDezenasMaisSorteadas.setBounds(463, 67, 195, 25);
		add(btnDezenasMaisSorteadas);
		
		btnTabelaDezenasRepetidas = new JButton("Tabela Dezenas Repetidas");
		btnTabelaDezenasRepetidas.addActionListener(new ActionListener() {			
			public void actionPerformed(ActionEvent e) {
				
				if(rdbtnLotomania.isSelected()){
					tipoLoteria = TipoLoteria.LOTOMANIA;
				}else if(rdbtnLotofacil.isSelected()){
					tipoLoteria = TipoLoteria.LOTOFACIL;
				}else{
					return;
				}
				resultado = Integer.parseInt(txtResultado.getText());
				inicio = Integer.parseInt(txtInicio.getText());;
				fim = Integer.parseInt(txtFim.getText());;
				LoteriaControlador c = new LoteriaControlador();
				textArea.setText( textArea.getText() + c.printEstatisticaDezenasRepetidas(tipoLoteria, resultado, inicio, fim) );
				
			}
		});
		btnTabelaDezenasRepetidas.setBounds(463, 99, 195, 25);
		add(btnTabelaDezenasRepetidas);
		
		JLabel lblGerarEstatsticas = new JLabel("Gerar Estat\u00EDsticas");
		lblGerarEstatsticas.setBounds(502, 11, 123, 14);
		add(lblGerarEstatsticas);
		
		rdbtnLotomania = new JRadioButton("Lotomania");
		rdbtnLotomania.setBounds(21, 37, 109, 23);
		add(rdbtnLotomania);
		
		rdbtnLotofacil = new JRadioButton("Lotofacil");
		rdbtnLotofacil.setBounds(21, 68, 109, 23);
		add(rdbtnLotofacil);
		
		rdGroupTipoLoteria = new ButtonGroup();
		rdGroupTipoLoteria.add(rdbtnLotomania);
		rdGroupTipoLoteria.add(rdbtnLotofacil);		
		
		btnLimpar = new JButton("Limpar");
		btnLimpar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textArea.setText("");
			}
		});
		btnLimpar.setBounds(673, 37, 89, 23);
		add(btnLimpar);
		
		btnTabelaDezenasRepetidaLT = new JButton("Tabela Dezenas Repetidas LT");
		btnTabelaDezenasRepetidaLT.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(rdbtnLotomania.isSelected()){
					tipoLoteria = TipoLoteria.LOTOMANIA;
				}else if(rdbtnLotofacil.isSelected()){
					tipoLoteria = TipoLoteria.LOTOFACIL;
				}else{
					return;
				}
				resultado = Integer.parseInt(txtResultado.getText());
				inicio = Integer.parseInt(txtInicio.getText());;
				fim = Integer.parseInt(txtFim.getText());;
				LoteriaControlador c = new LoteriaControlador();
				textArea.setText( textArea.getText() + c.printEstatisticaDezenasRepetidasLinhaTempo(tipoLoteria, resultado, inicio, fim) );
			}
		});
		btnTabelaDezenasRepetidaLT.setBounds(668, 99, 217, 25);
		add(btnTabelaDezenasRepetidaLT);
		
		JButton btnPrevisaoProxJogos = new JButton("Previsao prox Jogo");
		btnPrevisaoProxJogos.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(rdbtnLotomania.isSelected()){
					tipoLoteria = TipoLoteria.LOTOMANIA;
				}else if(rdbtnLotofacil.isSelected()){
					tipoLoteria = TipoLoteria.LOTOFACIL;
				}else{
					return;
				}
				resultado = Integer.parseInt(txtResultado.getText());
				inicio = Integer.parseInt(txtInicio.getText());;
				fim = Integer.parseInt(txtFim.getText());;
				LoteriaControlador c = new LoteriaControlador();
				String[] tokens = txtPrevisao.getText().split(",");
				textArea.setText(textArea.getText() + c.printEstatisticaPrevisaoDezenasRepetidas(tipoLoteria, resultado, 
						inicio, fim, tokens, true));
			}
		});
		btnPrevisaoProxJogos.setBounds(668, 68, 166, 25);
		add(btnPrevisaoProxJogos);
		
		txtPrevisao = new JTextField();
		txtPrevisao.setText("3,3,5");
		txtPrevisao.setBounds(844, 69, 86, 20);
		add(txtPrevisao);
		txtPrevisao.setColumns(10);
		

	}
}
